
// 变长参数
// 已经见到过的 printf()就是变长参数函数
// http://www.cprogramming.com/tutorial/c/lesson17.html
// http://blog.csdn.net/ithzhang/article/details/7021317
// 在C/C++中，变长参数声明的函数  必须至少有一个指定的参数(又称强制参数),且已知的指定参数必须声明在函数最左端
// int func(...);//错误
// int func(...,int a);//错误

// c99  mod
// gcc -std=c99 xxxx.c
// gcc -std=c99 foo.c -o foo

#include <stdarg.h>
#include <stdio.h>

double average(int num, ...)
{
	va_list arguments;
	float sum = 0;

	va_start( arguments, num);
	for ( int i=0; i< num; i++)
	{
		sum += va_arg (arguments,double);
	}
	va_end(arguments);
	return  sum/num;
}

void main()
{
	printf( "%f\n", average ( 3, 12.2, 22.3, 4.5 ) );
	printf( "%f\n", average ( 5, 3.3, 2.2, 1.1, 5.5, 3.3 ) );
}
